/**
 * @huhuzhu
 * 
 * 该文件用于配置TOUCHPAD固件参数
 * 
 * @copyright Copyright (c) 2024
 * 
 */


/**
 * 传感器外设设置
 */
#define TOUCH_NUM 24 // 触摸点数
#define BUTTON_NUM 12 // 按键数量
#define GPIO_SENSOR_NUM 14 // 扫描按键点数


// TSM12MC引脚 <原始物理IO>
#define TSM12MC_SDA GPIO_NUM_18
#define TSM12MC_SCL GPIO_NUM_8

#define TSM12MC_EN1 GPIO_NUM_15
#define TSM12MC_INT1 GPIO_NUM_7
#define TSM12MC_EN2 GPIO_NUM_17
#define TSM12MC_INT2 GPIO_NUM_16

#define TSM12MC_RESET GPIO_NUM_14

// I2C ADDRESS
#define TSM12MC_ADD1 0x68 // 0xD0>>1
#define TSM12MC_ADD2 0x78 // 0xF0>>1

/**
 * 功能键/LED设置 (GPIO经过映射)
 */

// 功能键设置 应从src\planner\config.cpp中获取按键序号
#define MODE_SETTINGS_KEY 12
#define MODE_SELECT_KEY 13 
#define TEST_LED 14


/**
 * 系统设置 时间单位(ms)
 */
#define TOUCH_INIT_TIME 300         // IC初始化时间
#define TOUCH_REFENCE_TIME 500      // IC自校准时间
#define TOUCH_SPL_DEF 8             // 默认触摸灵敏度 MAX:0 MIN:15
#define DEFAULT_SERIAL_BAUD 9600 // 默认波特率

//串口模式发送数据包大小  数据↓  包头尾↓
#define SERIAL_SEND_PACKET (25   +   2)
//串口模式发送额外偏移 (锁死间隔 没必要加到设置)
#define SERIAL_SEND_DELAY 0

#define STORAGE (TOUCH_NUM + BUTTON_NUM) // 触摸储存位点 24(phy) + 12(ext)
#define SERIAL_MAP_STORAGE (STORAGE * 2)

// 固件版本
#define FIRMWARE_VERSION "V2.9.2"


/**
 * 附加功能设置
 */

// 触发式串口发送 可能和某些HDD不兼容
//#define TRIGGLE_SERIAL_MODE

// 连区触摸设计的自修正算法
#define AUTO_REGION_DETECT
// 插值时不对A区屏蔽
#define NO_A_REGION
// 不对BE区插值
#define NO_BE_REGION

// 支持固件延迟锁定
#define TOUCHREPORT_DELAY
#define TOUCHQUEUE_SIZE 512         // 触摸矩阵队列长度

// 空闲时键盘切换阈值 每秒反馈大于x单位自动禁用键盘反馈 (需要键盘映射)
#define TRIGGLE_TUNE 5
// 风险键盘触摸保持阈值 (ms)
#define WARN_HOLDTIME 50

// A1-A8映射到键盘
#define A_PAD_TO_KEYBOARD